{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-08-22T00:08:17.272555Z",
     "start_time": "2018-08-22T00:08:17.084357Z"
    },
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-08-22T00:08:17.580155Z",
     "start_time": "2018-08-22T00:08:17.274030Z"
    },
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "from sklearn import datasets\n",
    "\n",
    "import yellowbrick\n",
    "from yellowbrick.target import FeatureCorrelation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-08-22T00:12:00.556727Z",
     "start_time": "2018-08-22T00:12:00.535224Z"
    },
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "data = datasets.load_diabetes()\n",
    "X, y = data['data'], data['target']\n",
    "feature_names = np.array(data['feature_names'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-08-22T00:12:01.011381Z",
     "start_time": "2018-08-22T00:12:01.006531Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Diabetes dataset\n",
      "================\n",
      "\n",
      "Notes\n",
      "-----\n",
      "\n",
      "Ten baseline variables, age, sex, body mass index, average blood\n",
      "pressure, and six blood serum measurements were obtained for each of n =\n",
      "442 diabetes patients, as well as the response of interest, a\n",
      "quantitative measure of disease progression one year after baseline.\n",
      "\n",
      "Data Set Characteristics:\n",
      "\n",
      "  :Number of Instances: 442\n",
      "\n",
      "  :Number of Attributes: First 10 columns are numeric predictive values\n",
      "\n",
      "  :Target: Column 11 is a quantitative measure of disease progression one year after baseline\n",
      "\n",
      "  :Attributes:\n",
      "    :Age:\n",
      "    :Sex:\n",
      "    :Body mass index:\n",
      "    :Average blood pressure:\n",
      "    :S1:\n",
      "    :S2:\n",
      "    :S3:\n",
      "    :S4:\n",
      "    :S5:\n",
      "    :S6:\n",
      "\n",
      "Note: Each of these 10 feature variables have been mean centered and scaled by the standard deviation times `n_samples` (i.e. the sum of squares of each column totals 1).\n",
      "\n",
      "Source URL:\n",
      "http://www4.stat.ncsu.edu/~boos/var.select/diabetes.html\n",
      "\n",
      "For more information see:\n",
      "Bradley Efron, Trevor Hastie, Iain Johnstone and Robert Tibshirani (2004) \"Least Angle Regression,\" Annals of Statistics (with discussion), 407-499.\n",
      "(http://web.stanford.edu/~hastie/Papers/LARS/LeastAngle_2002.pdf)\n",
      "\n"
     ]
    }
   ],
   "source": [
    "print(data['DESCR'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-08-22T00:12:01.616021Z",
     "start_time": "2018-08-22T00:12:01.486901Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nZGRo69atCgoK0pkzZ3Tx4kWlpqYqKCio2PVL0kMPPSTp0u/Cubm5OnXqVJHlBw8eVG5urkJCQiRJ\nvXr1si8r7rOSpAceeEBVqlRRlSpV1KFDB23fvl1bt25V1apV7eNFRUXpt99+U1pamiSpcePGatas\nmb2my+9569atioyMlCQ1b95cjRo1sj/uyHh/pEWLFjLG6KeffpIkrVixwr7eBQsW2G8HBgYW+Xwv\nXryosLCwq8YLDw/X/Pnz5e7urltuuUX33ntvkdeFh4fbe9SpUyft2LGjyOtL891D+cNvyCjRtX5D\nPn78uIwxGjRokP2x7OxstWvXTgUFBZo5c6a+++47FRQU6Pz587r77ruve73e3t7221lZWVqxYoU2\nb94sSTLG2DfxTZkyRe+8844ef/xx3XrrrRo9erQiIiKKjHXq1CnVqVPHfr9KlSqSpMzMzCKPV69e\nXRkZGdes4Vo1JSUl6auvvpIkFRQU2MP6Mkd6kZmZWWQ93t7eRWry8vKy37bZbNfcVHn//fdr+/bt\n2rJli9q3b6+0tDT9+OOP2rp1a6l+K768DpvNJunSJtYrnTlzpkgdpf2sfv9cb29vnThxQmfPntXx\n48eLfG4eHh72nw+qVat2zff8+zqqV68uSQ6PV5ywsDB99913atCggbZt26bXX39dkrR48WJ98skn\nOn/+vAoLC4v8hGCz2YrUd1lmZqZefPFF7d27Vy4uLjp58qRiY2Pty6/8HlWrVk3p6elFXl+a7x7K\nHwIZDqlVq5ZsNpvmz5+vqlWrFlm2ePFifffdd/r0009Vs2ZNffnll1q8ePFVY9hsNvtfYC4uLjpz\n5swfrq9OnTrq1auXxo0bd9Wy2rVra9KkSZo0aZLWrl2rESNGqEOHDkXqqlGjRpFZ3uXbtWvX1unT\np+2Pnz59WrVr1y5VD+rUqaOuXbtq4MCBf/icb775plS9+P37cbSmy+6//37t2LFD27Zt04gRI5SW\nlqZt27bphx9+0EsvvXTVjPd6eXt769y5c/b7l4NOKv6zklRk3WfOnJG3t7fq1KmjRo0aXXMP6X37\n9v1hHdWrV79mHY6OV5zw8HBNmTJFTZo0UZs2beTl5aXjx49r4sSJmjdvnpo2baqDBw8qPDy8xLHe\neOMNubm5afHixfLw8NCYMWOKLL/yz8LlHl2pNN89lD9ssoZD3Nzc1LFjR33++eeSpJycHP3jH//Q\n0aNHlZGRofr169tD8JtvvtH58+ftrzt37pyMMapRo4ZsNpt+/vlnSbrmoR6Xde3aVd9++639L9yV\nK1dqzpw5unjxomJiYnTixAlJUkBAgNzc3Owzuytf//333+vMmTPKz8/X8OHDtXbtWnXu3FkrVqyw\nh8Tnn3+uTp06laoHXbt21cKFC5WTk2N/7eUZy2Wl7cWVOnXqpEWLFiknJ0f5+fmaN29eqWu67P77\n79f69etVUFCg6tWrq1WrVlq6dKnq1q171T+g/qiO4jRo0EA2m02bNm2SdGlHKRcXF3tfrvVZXbZi\nxQrl5eUpOztb//rXv9S6dWu1aNFC6enp2rlzp6RLO2uNHTu2xJpatmypFStWSJK2bdum3377TZIc\nHs/NzU1ZWVnXXHbfffcpIyNDKSkp9k3UmZmZ8vT01N133638/Hx98cUXklTkHwnXkpGRoSZNmsjD\nw0M//fSTtm/fbv9eSNK3336r3NxcZWdn69///rdat25d5PWl+e6h/CGQ4bAXXnhBW7ZsUUREhHr1\n6iVfX1/dcccdioqK0unTp9WlSxeNGTNGzz77rI4dO6aXXnpJgYGBOnHihDp06CB3d3eNGDFCf/vb\n3xQdHa2mTZv+4boCAgL09NNPKyYmRpGRkfr444/VrVs3ubu7q0+fPho8eLB69OihmJgYTZw4Ubfe\nemuR17ds2VJPPvmkHn74YT3wwAPy9/dXVFSUmjdvrqFDh2rAgAGKiIhQVlaWnn322VK9/7CwMHXp\n0kW9evVSRESEvv/+e7Vv377Ic0rbiys3CUdGRqpjx46Kjo5WVFSU7rjjjiI/DZRGvXr1lJWVpebN\nm0uS/Pz8tH//frVr1+6q515ZR2n31HV3d9eLL76o8ePHKzIyUi4uLvL09JT0x5/VZa1atdKgQYMU\nGRmp4OBgdezYUbfeeqtmzJihF198UZGRkRo+fLgiIiLsIf9Hxo4dq1WrVik0NFSfffaZgoODJcnh\n8bp06aLPP/9cI0eOvGqZi4uLQkNDtWHDBnXp0kWSdM8996hjx47q2rWrHn30UXXt2lUtW7Ysssf6\ntTzxxBP6/PPP1b17d3322WcaN26cvvjiC/sRAsHBwRo0aJB69OihoKAgdejQocjrS/PdQ/njYq7n\nn8UA8CfExMSoT58+6tmzZ1mXAlgOM2QAACyAQAYAwALYZA0AgAUwQwYAwALK7DjkwsJCnT9/Xu7u\n7iXu+QgAQHl3+SQ5VatWlavr1fPhMgvk8+fPO3yAPgAA5ZWfn1+Rs8VdVmaB7O7uLulSYR4eHn9q\nrN27d9vPS4s/h146B310HnrpPPTSeRzpZV5envbt22fPv98rs0C+vJnaw8OjyMn7HeWMMXAJvXQO\n+ug89NJ56KXzONrLP/qZlp26AACwAAIZAAALIJABALAAAhkAAAsgkAEAsAACGQAACyCQAQCwAAIZ\nAAALIJABALAAAhkAAAsos1NnAhVZ27l7pbl7y7qMioNellrB9JiyLgEOYoYMAIAFEMgAAFgAgQwA\ngAUQyAAAWACBDACABRDIAABYAIEMAIAFOC2QFy1apIceekjR0dFas2aNs4YFAKBScEognzp1Sm+/\n/bbmzp2rd999VytXrnTGsAAAVBoOnakrLS1NY8eOlaurqwoKCtS3b18FBQXJy8tLXl5eevHFF51d\nJwAAFZpDM+Tly5crODhYSUlJmjBhgo4cOSJjjJ555hn1799fGzZscHadAABUaA7NkENCQhQXF6es\nrCyFh4fLw8NDx48f11tvvaW0tDQNGjRIq1atkouLi7PrBQCgQnJohuzn56eFCxeqdevWSkxMVF5e\nnlq1aiU3Nzc1aNBAVatWVWZmprNrBQCgwnIokJcsWaL9+/crNDRUo0aN0rFjx7Rx40YVFhYqMzNT\n2dnZqlGjhrNrBQCgwnJok3XDhg2VkJAgT09P2Ww2TZw4UVu2bFFsbKxycnI0ceJEubpyiDMAAKXl\nUCAHBAQoOTm5yGONGzfWY4895pSiAACobJjGAgBgAQQyAAAWQCADAGABBDIAABZAIAMAYAEEMgAA\nFuDQYU8Aire5v78CAwPLuowKITU1lV6iUmCGDACABRDIAABYAIEMAIAFEMgAAFgAO3UBN0DbuXul\nuXvLuoyKg146D720K5geU9YlFMEMGQAACyCQAQCwAAIZAAALIJABALAAAhkAAAsgkAEAsAACGQAA\nC3DKcci7d+/W3//+d911112SJD8/P02aNMkZQwMAUCk4JZCzs7MVHh6uCRMmOGM4AAAqHYcCOS0t\nTWPHjpWrq6sKCgrUt29fZ9cFAECl4lAgL1++XMHBwRo+fLj27NmjdevWKTU1VX/729+Uk5OjESNG\nqF27ds6uFQCACsuhQA4JCVFcXJyysrIUHh6ubt26qXHjxurWrZsOHDigxx9/XN9++608PDycXS8A\n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\nzcCBA292eeVKSb0cOXKk+fbbb40xxkyePNkcOXLkT62vXP4Tc8OGDQoLC5MktW/fXqmpqVc9Jy8v\nT++8846GDRt2s8srN0rqY5UqVbRo0SJ5eXnJxcVFPj4+On36dFmUalkbNmxQaGioJOkvf/mLzp49\nq3PnzkmSDh06JG9vb91xxx1ydXVVp06dtGHDhrIs17KK66MkpaSk6Pbbb5ck1axZU6dOnSqTOsuD\nknopSVOnTmVrVykU18vCwkKlpqaqa9eukqSEhATVq1fvT62vXAbyyZMnVbNmTUmSzWaTq6vrVafg\nnD17tvr16ycvL6+yKLFcKE0fL/dv3759OnLkiFq0aHHT67SykydPqkaNGvb7tWrVUnp6uiQpPT3d\n3l9Jql27tn0Ziiquj9L/vocnTpzQ+vXr1alTp5teY3lRUi9TUlLUtm1b1a9fvyzKK1eK62VmZqa8\nvLw0Y8YMDRw4UNOnT//DU2KWluV/Q543b57mzZtX5LGdO3cWuW+MKXK2r4MHD2r37t0aMWKENm3a\ndFPqtDpH+njZwYMHNWbMGE2fPl3u7u43tM7y5vd/AK/s4bX+cHJWumsrro+XZWRk6Omnn9bzzz9f\n5C9JFFVcL0+fPq2UlBR99NFHOn78eFmUV66U9Of7+PHj6t27t0aOHKmhQ4dqzZo16ty5s8Prs3wg\n9+3bV3379i3yWHx8vNLT03XPPffo4sWLMsYUCYrVq1crLS1NjzzyiM6dO6fMzEy99957GjJkyM0u\n3zIc6aMkHTt2TMOHD9err76qpk2b3sySy4W6devq5MmT9vsnTpxQ7dq1r7ns+PHjuu222256jeVB\ncX2UpHPnzmnIkCEaNWqU2rdvXxYllhvF9XLjxo3KzMzUgAEDlJeXp99++01TpkzR+PHjy6pcSyuu\nlzVq1NAdd9yhBg0aSJKCgoK0f//+PxXI5XKTdUhIiJYtWyZJWrVqle6///4iywcPHqzFixfryy+/\nVEJCgjp37lypw/iPlNRHSZowYYImT56sgICAm11euRASEqLly5dLkvbu3as6derYN6/eeeedOnfu\nnA4fPqz8/HytWrVKISEhZVmuZRXXR+nSb56xsbFsqi6F4noZERGhb775Rl9++aXeeustBQQEEMbF\nKK6Xbm5u8vX11cGDByVJe/bs0d133/2n1mf5GfK19OjRQ+vXr1e/fv2KHNI0Z84ctWnTRq1atSrj\nCsuHkvro4+OjrVu3asaMGfbXDB48WN26dSurki3nvvvuU0BAgB577DG5uLgoISFBKSkpqlatmsLC\nwjR58mSNGTNG0qV+/9k/sBVVcX1s3769FixYoF9//VXJycmSpKioKD366KNlXLU1lfSdROmV1Mvx\n48crISFBubm5atKkiX0HL0dxcQkAACygXG6yBgCgoiGQAQCwAAIZAAALIJABALAAAhkAAAsol4c9\nAWXp8OHDioiIsB9ed/HiRdWvX18JCQmqXr16GVd3bRcuXNCbb76ptWvXysvLS/n5+Ro8eLAeeOAB\np69r5syZys/PL/Zcydu2bdNtt90mX19fvfzyy+rZs6eaNWvm9FqA8oRABhxQs2bNIpetmzZtmt55\n5x2NGzeuDKv6Y88995x8fX21aNEiubi46OjRoxo0aJDq1KmjNm3a3PR6UlJS1KNHD/n6+mrChAk3\nff2AFRHIgBO0adNGX3zxhSTpp59+0rRp02SMUWFhoeLj4+Xv76+tW7fq9ddfl4eHhy5cuKCEhAQF\nBAQoPj5eHh4eOnDggF5//XUlJSVp48aN8vDwUJ06dfTqq6/KZrNpypQp2rNnjySpXbt2euaZZ7Rp\n0ybNmTNHt99+u/7zn//Izc1N77//vqpUqWKv7eDBg9q5c6cSExPt5+G94447lJycLG9vb0nSrFmz\ntHr1arm5ualJkyaaOHGijh8/rmHDhsnPz09NmjRRnTp1tHr1ap05c0aPP/64WrVqpYSEBJ06dUp5\neXnq37+/HnzwwSJ9mTt3rhYuXCh3d3fdcssteuONN7Rp0yYtW7ZMP/zwg/7xj39o1qxZGjZsmIKD\ng4uto3379vrhhx90/vx5zZ49W3Xr1r0ZHy1w8/ypizcCldChQ4dMhw4d7Pfz8/NNfHy8mT17tjHG\nmKioKPPrr78aY4z58ccfTa9evYwxxqxYscL8+OOPxhhjFi9ebEaMGGGMMWbcuHFmzJgxxhhjTp8+\nbVq2bGny8/ONMcYsWbLEHDlyxCxevNgMHTrUFBYWmvz8fNOnTx+zadMms3HjRnPfffeZkydPGmOM\nGThwoP36rJetWLHCPPXUU3/4frZt22Z69uxp8vLyjDGXrjeckpJiDh06ZJo2bWp++eUXY4wx8+fP\nN6GhoSY3N9cYc+n6r8nJycYYY86fP29CQ0NNRkaGmTFjhklMTDTGGPPhhx+arKwsY4wxkyZNMklJ\nSfY6161bV+R2SXXs27fPGGNMfHy8+eijj0r+oIByhhky4IDMzEzFxMRIunRd1NatW2vw4MHKyMjQ\ngQMHimyGPXfunAoLC1W7dm299tprys3N1dmzZ+2zU0n236O9vb3VoUMHDRw4UGFhYerRo4duv/12\nffTRRwoKCpKLi4tsNptat26tXbt2qVmzZmrcuLFq1aolSapfv/5V16y22WwqKCj4w/eyc+dOtWnT\nxn5hkbZt22rXrl1q06aNvL291ahRI/tz/f395eHhIUnatGmTdu3apQULFki6dG7fw4cPFxnbx8dH\nQ4cOlaurq44cOVLsxTWKq6NGjRpq0qSJJKlevXpclxsVEoEMOOD3vyFfdsstt8jd3f2ay5577jm9\n8MILCgoK0qpVq/Thhx/al10OOUmaMWOGfvnlF61Zs0YDBw7UzJkzrxrLXHEZOJvNVmytTZo00Y8/\n/qjc3Fzdcsst9scPHDggHx+fYsf+/dW/rrzv4eGhhIQE3XvvvUWes2bNGkmXrhQ2bdo0LVmyRLVq\n1dK0adOKrbO4On7/Hg1n/EUFxGFPgBN5eXnpzjvvtIfSgQMH9NZbb0m6dLHzBg0aqLCwUMuWLVNe\nXt5Vrz906JA+/vhjNW7cWE888YTCwsL0008/qVWrVlq/fr2MMcrPz9fmzZvVokWLUtV05513ql27\ndpo6dap9pnzs2DHFxcXp559/VqtWrbRp0yZdvHhRkrRhw4ZSjR0YGKilS5dKurQX9+TJk5Wfn29f\nnpGRIU9PT9WqVUunT5/W2rVr7e/ZxcVFFy5cKDKeo3UAFQUzZMDJpk2bppdeeklz5sxRfn6+4uPj\nJUlDhgzR0KFDVa9ePT355JN67rnn9PHHHxd5bd26dbV371716dNHVatWlbe3t4YPHy5PT09t27ZN\n/fr1U2FhoUJDQxUYGKhNmzaVqqYpU6bozTff1EMPPSQfHx+5urpq3LhxateunSTpgQce0IABA+Tq\n6qqAgABFRUUpLS2t2DHj4uI0ceJE9evXT3l5eXr00Ufl5va/v1KaNm0qPz8/9enTRw0aNNDIkSM1\nefJkderUSSEhIXrhhReKBHiLFi0cqgOoKLjaEwAAFsAmawAALIBABgDAAghkAAAsgEAGAMACCGQA\nACyAQAYAwAIIZAAALIBABgDAAv4/7Ggydiu6IKkAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7ff6a36647b8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fea_corr = FeatureCorrelation(labels=feature_names)\n",
    "fea_corr.fit(X, y)\n",
    "fea_corr.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-08-22T00:12:02.340185Z",
     "start_time": "2018-08-22T00:12:02.335165Z"
    },
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "discrete_features = [False for _ in range(len(feature_names))]\n",
    "discrete_features[1] = True"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-08-22T00:12:14.445077Z",
     "start_time": "2018-08-22T00:12:14.271593Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAeQAAAFnCAYAAAB3ijqPAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzt3XlYlPX+//EXDIviholS9tMwi1LM\nJWwR3BAUMcsg7ZSKnLLMEisr0+OSdlzKTKxssz1NjyUuZKakWbaZKWqldspTeY6KC4IisjN+fn94\nMV9xdxqZG+b5uK5zHWbuuT/zfs89dy8/99xzj5cxxggAALiVt7sLAAAABDIAAJZAIAMAYAEEMgAA\nFkAgAwBgAQQyAAAWQCDjrK655hp1795dPXv2dPxv8ODBTo9XUlKipUuXurBCa+rWrZs2btx41sec\n+Frs379fvXv3rozSTnm+k7fJNddco3379l3wmC1bttTu3btdVqMz/v73v2vx4sVOr//HH39ow4YN\nLqzo/5zvNk5MTFRaWtop9+/evVstW7a8GKXBInzcXQCsb+7cubr00ktdMtb27du1dOlS3X777S4Z\nryo78bUIDg7WJ598UmnPfeLzsU3+z+rVq1VWVqYbbrjB5WNX9jZG1cMMGU7bv3+/hg4dqtjYWMXG\nxmrt2rWOZQsXLlRcXJx69OihAQMGaM+ePTp48KCSk5O1ZcsW9e/f/5R/8Z94e/HixUpOTlZSUpKe\ne+45SdJHH32knj17qlu3bnrsscdUVFQkSfrhhx8UHx+vXr16KS4uTitWrDhtvW+88Yaio6MVGxur\nZ555RuXXxJkzZ4569eqlnj176sEHH1ROTo4kafTo0XrmmWd06623asWKFZo1a5bGjRunvn376r33\n3pMkvfLKK4qNjVVUVJQmT54su91+yvNe6Gtx7NgxzZw503FEYvTo0SooKJB0fPb07rvv6u6771an\nTp302GOP6eRr+yxcuFBPPPGE43ZcXJxmzpzpGPvGG2/U1q1b1bJly1PqKLd27VolJCSoY8eOeued\nd077eq5du1bdu3dXXFyc3nrrrQrLzrStEhMTNWvWLN15552KiorSU0895XjNMjIydMcdd6h79+66\n8847tWvXLsd74eGHH9aYMWMUGxurXr16aceOHZKkXbt2qV+/foqJidHjjz9e4fW/0PHWrFmj2bNn\na86cOXr22Wcr9DNt2jRNnjzZcfvQoUNq27at8vLytHnzZiUkJKhnz57q1auXvvvuO0nH388dO3bU\n1KlTNXDgwFO28dNPP63Y2Fh169ZNI0eOVGlpqWP83377TX379lXXrl01bty4076vzue9hyrGAGcR\nGhpq9u7de9plQ4YMMTNnzjTGGLNz505z4403mpycHHPw4EHTqlUrx3qjR482Y8aMMcYYs2jRIpOU\nlGSMMWbXrl2mRYsWjvFOvL1o0SLTtm1b8+effxpjjPnxxx9NRESE2bdvnzHGmPHjx5tnn33WGGNM\nQkKCWb9+vTHGmD///NM89thjp9S6YcMG0717d5OXl2eKi4vNHXfcYT799FOzefNm07lzZ3Pw4EFj\njDH//Oc/HbWOGjXK3HrrraaoqMgYY8xLL71kOnbsaLKzs40xxqxYscLccsst5siRI6a0tNQMGTLE\nzJ071xhjTFRUlNmwYYNTr8Unn3xibr/9dpOfn2/sdrt58MEHzSuvvGKMMWbgwIFm4MCBprCw0OTn\n55sOHTqYjRs3Vuj1f//7n4mOjjbGGJOdnW3uvPNOM3DgQGOMMb/88ovp06fPKa91eR3GHN/mM2bM\nMMYY89NPP5nrrrvOlJSUVHiOsrIy07FjR/PNN98YY4x5++23TWhoqNm1a9dZt9XAgQNN3759TUFB\ngSkoKDA9evQwq1atMkePHjWRkZGO8ZYtW2bi4+Md9bVp08b8/PPPxhhjJk6caMaOHWuMMebhhx82\nKSkpjvdIy5YtzaJFi5web9SoUY7X+kRbtmwxUVFRjtupqanmgQceMMYY07t3b/PJJ58YY4xZsmSJ\niYmJcWzTsLAws3jx4lO28cqVK03v3r1NSUmJKSoqMnFxcWbp0qWO1+iOO+445TU6cf2zvfdQdTFD\nxjklJiZW+Ax53LhxKigo0Nq1ax2zqiuuuELh4eFau3atGjRooIyMDMdh7vbt2ztmJxciJCREISEh\nkqSVK1cqOjpawcHBkqS7775bn332mSSpQYMGWrp0qX7//XeFhIRoxowZp4z11VdfqUuXLqpdu7b8\n/Pw0d+5c9ejRQ19++aViY2PVoEEDSVK/fv307bffOtbr0KGD/P39HbfbtGmjSy65RJK0YsUK3Xrr\nrapTp458fHzUr18/R03lnHktvvzyS91+++0KCAiQt7e3EhISKtTUs2dP1ahRQwEBAQoJCdHevXsr\nrN+kSRPZ7XZlZ2dr48aN6tChg3Jzc1VaWqqMjAx16NDhrM8vSbfddpuk458LFxcX69ChQxWW79y5\nU8XFxYqMjJQkxcfHO5adbVtJ0i233KKaNWuqZs2a6tSpkzZv3qyNGzeqVq1ajvF69+6t//3vf8rM\nzJQkNW/eXK1atXLUVN7zxo0bFRcXJ0lq3bq1rrzySsf9zox3Jm3atJExRv/+978lSatWrXI879Kl\nSx1/h4eHV9i+paWl6t69+ynjxcbGatGiRfL19ZW/v7+uu+66CuvFxsY6XqMuXbpoy5YtFdY/n/ce\nqh4+Q8Y5ne4z5P3798sYo0GDBjnuKygo0M033yy73a5Zs2bp888/l91uV35+vpo1a3bBz1uvXj3H\n33l5eVq1apV++OEHSZIxxnGIb+rUqXrttdd0zz33qEaNGnrsscfUs2fPCmMdOnRIjRo1ctyuWbOm\nJCknJ6fC/XXr1lV2dvZpazhdTXPnztWSJUskSXa73RHW5Zx5LXJycio8T7169SrUVLt2bcffNpvt\ntIcqb7rpJm3evFkbNmxQx44dlZmZqV9++UUbN248r8+Ky5/DZrNJOn6I9US5ubkV6jjfbXXyY+vV\nq6cDBw7oyJEj2r9/f4Xt5ufn5/j4oE6dOqft+eQ66tatK0lOj3c23bt31+eff66mTZtq06ZNev75\n5yVJy5Yt05w5c5Sfn69jx45V+AjBZrNVqK9cTk6OJk2apO3bt8vLy0sHDx5UUlKSY/mJ76M6deoo\nKyurwvrn895D1UMgwykNGjSQzWbTokWLVKtWrQrLli1bps8//1wffPCBLrnkEn300UdatmzZKWPY\nbDbHf8C8vLyUm5t7xudr1KiR4uPjNWrUqFOWBQUFafz48Ro/fry++eYbDR8+XJ06dapQV/369SvM\n8sr/DgoK0uHDhx33Hz58WEFBQef1GjRq1EjdunXTwIEDz/iYTz/99Lxei5P7cbamcjfddJO2bNmi\nTZs2afjw4crMzNSmTZv0008/afLkyafMeC9UvXr1dPToUcft8qCTzr6tJFV47tzcXNWrV0+NGjXS\nlVdeedozpH/77bcz1lG3bt3T1uHseGcTGxurqVOn6uqrr9YNN9yg2rVra//+/Ro3bpwWLlyoFi1a\naOfOnYqNjT3nWDNnzpSPj4+WLVsmPz8/Pf744xWWn7gvlL9GJzqf9x6qHg5Zwyk+Pj7q3LmzFixY\nIEkqLCzUP/7xD+3du1fZ2dm6/PLLHSH46aefKj8/37He0aNHZYxR/fr1ZbPZ9Ouvv0rSab/qUa5b\nt2767LPPHP/BXb16td544w2VlpYqMTFRBw4ckCSFhYXJx8fHMbM7cf01a9YoNzdXZWVlGjZsmL75\n5ht17dpVq1atcoTEggUL1KVLl/N6Dbp166a0tDQVFhY61i2fsZQ739fiRF26dNHHH3+swsJClZWV\naeHCheddU7mbbrpJ3333nex2u+rWrat27dppxYoVCg4OPuUfUGeq42yaNm0qm82m9evXSzp+opSX\nl5fjdTndtiq3atUqlZSUqKCgQF999ZXat2+vNm3aKCsrSz/++KOk4ydrjRw58pw1tW3bVqtWrZIk\nbdq0Sf/73/8kyenxfHx8lJeXd9pl119/vbKzs7V48WLHIeqcnBwFBASoWbNmKisr04cffihJFf6R\ncDrZ2dm6+uqr5efnp3//+9/avHmz430hSZ999pmKi4tVUFCgr7/+Wu3bt6+w/vm891D1EMhw2tNP\nP60NGzaoZ8+eio+PV5MmTXTZZZepd+/eOnz4sKKiovT4449rxIgR2rdvnyZPnqzw8HAdOHBAnTp1\nkq+vr4YPH6777rtPCQkJatGixRmfKywsTEOHDlViYqLi4uL03nvvKTo6Wr6+vurbt6/+/ve/q1ev\nXkpMTNS4ceNUo0aNCuu3bdtWgwcP1u23365bbrlFLVu2VO/evdW6dWsNGTJEAwYMUM+ePZWXl6cR\nI0acV//du3dXVFSU4uPj1bNnT61Zs0YdO3as8JjzfS1OPCQcFxenzp07KyEhQb1799Zll11W4aOB\n89G4cWPl5eWpdevWkqTQ0FDt2LFDN9988ymPPbGO8z1T19fXV5MmTdKYMWMUFxcnLy8vBQQESDrz\ntirXrl07DRo0SHFxcYqIiFDnzp1Vo0YNvfTSS5o0aZLi4uI0bNgw9ezZ0xHyZzJy5Eh98cUXiomJ\n0bx58xQRESFJTo8XFRWlBQsW6OGHHz5lmZeXl2JiYrRu3TpFRUVJkq699lp17txZ3bp109/+9jd1\n69ZNbdu2rXDG+unce++9WrBggXr06KF58+Zp1KhR+vDDDx3fEIiIiNCgQYPUq1cvdejQQZ06daqw\n/vm891D1eJkL+WcxAPwFiYmJ6tu3r/r06ePuUgDLYYYMAIAFEMgAAFgAh6wBALAAZsgAAFiA276H\n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\nJ07UnDlzNGjQIM2ePfu86/r999+VkJCgefPmqUWLFlqxYoUGDhyoFi1aaPTo0YqOjtaTTz6pf/zj\nH5o7d67uuecePf300471AwIC9MEHH8hms6mgoECtWrXSggULFBAQoDVr1ujNN9/UQw895Dhkf7pa\nmzRpovj4eN1222265557HGMXFhZq3LhxmjVrlubOnavOnTvrhRdecCz39/fXO++8o6FDhzou2whU\nZwQy4AK9evXSp59+qtLSUi1ZskS33Xaby8YOCgrS9OnTNXDgQL3xxhs6dOjQea9bv359x7V2Gzdu\nfMrn1UeOHFF2drZat24tSbrxxhu1detWx/Lrr7++wuPDw8MlHb9Yf/mySy+9VEeOHLngWnfu3KkG\nDRro0ksvdTz3zz//7Fh+4403Oup2x2F9oLIRyIAL1K9fX2FhYVq0aJGysrJ03XXXOZad/DNvpaWl\n5xzvxMc8+eSTuu+++/TBBx9oxIgRF1SXzWarcPvkK+WeXNvJy0++LvGJ45089l+t9eSfxPPx8amw\nDKjuCGTARfr06aOZM2fqlltuqXB/7dq1lZubq6KiItntdm3YsMGxzMvLy/HzdbVr19bevXslyXEC\nlHT8x9WbNm2qY8eOaeXKlSopKXFZzXXq1FHDhg31448/SpLWrVuntm3bOj3emWr18vI65YfcmzVr\npuzsbMevI61bt87xuTvgiTipC3CRbt266amnnjrlcHW9evUUHx+vhIQENW3aVC1btnQs69ixo5KT\nkzVt2jTde++9Gjt2rEJCQiocKr7//vs1ZMgQNW7cWIMHD9aTTz6p9957z2V1T5s2Tc8++6xsNpu8\nvb01ceJEp8c6U63t27fXiBEjVKNGDcfMukaNGpoyZYpGjBghPz8/BQQEaMqUKS7qCqh6+LUnAAAs\ngEPWAABYAIEMAIAFEMgAAFgAgQwAgAUQyAAAWACBDACABRDIAABYAIEMAIAF/H+CChFA897H1wAA\nAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7ff6a3436320>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fea_corr = FeatureCorrelation(method='mutual_info-regression',\n",
    "                              labels=feature_names)\n",
    "fea_corr.fit(X, y, discrete_features=discrete_features, random_state=0)\n",
    "fea_corr.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-08-22T00:08:17.922387Z",
     "start_time": "2018-08-22T00:08:17.915159Z"
    },
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "data = datasets.load_boston()\n",
    "X, y = data['data'], data['target']\n",
    "feature_names = np.array(data['feature_names'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-08-22T00:08:17.926549Z",
     "start_time": "2018-08-22T00:08:17.923791Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Boston House Prices dataset\n",
      "===========================\n",
      "\n",
      "Notes\n",
      "------\n",
      "Data Set Characteristics:  \n",
      "\n",
      "    :Number of Instances: 506 \n",
      "\n",
      "    :Number of Attributes: 13 numeric/categorical predictive\n",
      "    \n",
      "    :Median Value (attribute 14) is usually the target\n",
      "\n",
      "    :Attribute Information (in order):\n",
      "        - CRIM     per capita crime rate by town\n",
      "        - ZN       proportion of residential land zoned for lots over 25,000 sq.ft.\n",
      "        - INDUS    proportion of non-retail business acres per town\n",
      "        - CHAS     Charles River dummy variable (= 1 if tract bounds river; 0 otherwise)\n",
      "        - NOX      nitric oxides concentration (parts per 10 million)\n",
      "        - RM       average number of rooms per dwelling\n",
      "        - AGE      proportion of owner-occupied units built prior to 1940\n",
      "        - DIS      weighted distances to five Boston employment centres\n",
      "        - RAD      index of accessibility to radial highways\n",
      "        - TAX      full-value property-tax rate per $10,000\n",
      "        - PTRATIO  pupil-teacher ratio by town\n",
      "        - B        1000(Bk - 0.63)^2 where Bk is the proportion of blacks by town\n",
      "        - LSTAT    % lower status of the population\n",
      "        - MEDV     Median value of owner-occupied homes in $1000's\n",
      "\n",
      "    :Missing Attribute Values: None\n",
      "\n",
      "    :Creator: Harrison, D. and Rubinfeld, D.L.\n",
      "\n",
      "This is a copy of UCI ML housing dataset.\n",
      "http://archive.ics.uci.edu/ml/datasets/Housing\n",
      "\n",
      "\n",
      "This dataset was taken from the StatLib library which is maintained at Carnegie Mellon University.\n",
      "\n",
      "The Boston house-price data of Harrison, D. and Rubinfeld, D.L. 'Hedonic\n",
      "prices and the demand for clean air', J. Environ. Economics & Management,\n",
      "vol.5, 81-102, 1978.   Used in Belsley, Kuh & Welsch, 'Regression diagnostics\n",
      "...', Wiley, 1980.   N.B. Various transformations are used in the table on\n",
      "pages 244-261 of the latter.\n",
      "\n",
      "The Boston house-price data has been used in many machine learning papers that address regression\n",
      "problems.   \n",
      "     \n",
      "**References**\n",
      "\n",
      "   - Belsley, Kuh & Welsch, 'Regression diagnostics: Identifying Influential Data and Sources of Collinearity', Wiley, 1980. 244-261.\n",
      "   - Quinlan,R. (1993). Combining Instance-Based and Model-Based Learning. In Proceedings on the Tenth International Conference of Machine Learning, 236-243, University of Massachusetts, Amherst. Morgan Kaufmann.\n",
      "   - many more! (see http://archive.ics.uci.edu/ml/datasets/Housing)\n",
      "\n"
     ]
    }
   ],
   "source": [
    "print(data['DESCR'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-08-22T00:08:17.930099Z",
     "start_time": "2018-08-22T00:08:17.927745Z"
    },
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "discrete_features = [False for _ in range(len(feature_names))]\n",
    "discrete_features[3] = True"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-08-22T00:08:18.102400Z",
     "start_time": "2018-08-22T00:08:17.931239Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nqo8b+eJvAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7ff6a3610cf8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fea_corr = FeatureCorrelation(method='mutual_info-regression', \n",
    "                              labels=feature_names, \n",
    "                              sort=True)\n",
    "fea_corr.fit(X, y, discrete_features=discrete_features, random_state=0)\n",
    "fea_corr.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-08-22T00:08:18.109299Z",
     "start_time": "2018-08-22T00:08:18.103858Z"
    },
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "data = datasets.load_wine()\n",
    "X, y = data['data'], data['target']\n",
    "feature_names = np.array(data['feature_names'])\n",
    "X_pd = pd.DataFrame(X, columns=feature_names)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-08-22T00:08:18.113874Z",
     "start_time": "2018-08-22T00:08:18.110603Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Wine Data Database\n",
      "====================\n",
      "\n",
      "Notes\n",
      "-----\n",
      "Data Set Characteristics:\n",
      "    :Number of Instances: 178 (50 in each of three classes)\n",
      "    :Number of Attributes: 13 numeric, predictive attributes and the class\n",
      "    :Attribute Information:\n",
      " \t\t- 1) Alcohol\n",
      " \t\t- 2) Malic acid\n",
      " \t\t- 3) Ash\n",
      "\t\t- 4) Alcalinity of ash  \n",
      " \t\t- 5) Magnesium\n",
      "\t\t- 6) Total phenols\n",
      " \t\t- 7) Flavanoids\n",
      " \t\t- 8) Nonflavanoid phenols\n",
      " \t\t- 9) Proanthocyanins\n",
      "\t\t- 10)Color intensity\n",
      " \t\t- 11)Hue\n",
      " \t\t- 12)OD280/OD315 of diluted wines\n",
      " \t\t- 13)Proline\n",
      "        \t- class:\n",
      "                - class_0\n",
      "                - class_1\n",
      "                - class_2\n",
      "\t\t\n",
      "    :Summary Statistics:\n",
      "    \n",
      "    ============================= ==== ===== ======= =====\n",
      "                                   Min   Max   Mean     SD\n",
      "    ============================= ==== ===== ======= =====\n",
      "    Alcohol:                      11.0  14.8    13.0   0.8\n",
      "    Malic Acid:                   0.74  5.80    2.34  1.12\n",
      "    Ash:                          1.36  3.23    2.36  0.27\n",
      "    Alcalinity of Ash:            10.6  30.0    19.5   3.3\n",
      "    Magnesium:                    70.0 162.0    99.7  14.3\n",
      "    Total Phenols:                0.98  3.88    2.29  0.63\n",
      "    Flavanoids:                   0.34  5.08    2.03  1.00\n",
      "    Nonflavanoid Phenols:         0.13  0.66    0.36  0.12\n",
      "    Proanthocyanins:              0.41  3.58    1.59  0.57\n",
      "    Colour Intensity:              1.3  13.0     5.1   2.3\n",
      "    Hue:                          0.48  1.71    0.96  0.23\n",
      "    OD280/OD315 of diluted wines: 1.27  4.00    2.61  0.71\n",
      "    Proline:                       278  1680     746   315\n",
      "    ============================= ==== ===== ======= =====\n",
      "\n",
      "    :Missing Attribute Values: None\n",
      "    :Class Distribution: class_0 (59), class_1 (71), class_2 (48)\n",
      "    :Creator: R.A. Fisher\n",
      "    :Donor: Michael Marshall (MARSHALL%PLU@io.arc.nasa.gov)\n",
      "    :Date: July, 1988\n",
      "\n",
      "This is a copy of UCI ML Wine recognition datasets.\n",
      "https://archive.ics.uci.edu/ml/machine-learning-databases/wine/wine.data\n",
      "\n",
      "The data is the results of a chemical analysis of wines grown in the same\n",
      "region in Italy by three different cultivators. There are thirteen different\n",
      "measurements taken for different constituents found in the three types of\n",
      "wine.\n",
      "\n",
      "Original Owners: \n",
      "\n",
      "Forina, M. et al, PARVUS - \n",
      "An Extendible Package for Data Exploration, Classification and Correlation. \n",
      "Institute of Pharmaceutical and Food Analysis and Technologies,\n",
      "Via Brigata Salerno, 16147 Genoa, Italy.\n",
      "\n",
      "Citation:\n",
      "\n",
      "Lichman, M. (2013). UCI Machine Learning Repository\n",
      "[http://archive.ics.uci.edu/ml]. Irvine, CA: University of California,\n",
      "School of Information and Computer Science. \n",
      "\n",
      "References\n",
      "----------\n",
      "(1) \n",
      "S. Aeberhard, D. Coomans and O. de Vel, \n",
      "Comparison of Classifiers in High Dimensional Settings, \n",
      "Tech. Rep. no. 92-02, (1992), Dept. of Computer Science and Dept. of \n",
      "Mathematics and Statistics, James Cook University of North Queensland. \n",
      "(Also submitted to Technometrics). \n",
      "\n",
      "The data was used with many others for comparing various \n",
      "classifiers. The classes are separable, though only RDA \n",
      "has achieved 100% correct classification. \n",
      "(RDA : 100%, QDA 99.4%, LDA 98.9%, 1NN 96.1% (z-transformed data)) \n",
      "(All results using the leave-one-out technique) \n",
      "\n",
      "(2) \n",
      "S. Aeberhard, D. Coomans and O. de Vel, \n",
      "\"THE CLASSIFICATION PERFORMANCE OF RDA\" \n",
      "Tech. Rep. no. 92-01, (1992), Dept. of Computer Science and Dept. of \n",
      "Mathematics and Statistics, James Cook University of North Queensland. \n",
      "(Also submitted to Journal of Chemometrics). \n",
      "\n"
     ]
    }
   ],
   "source": [
    "print(data['DESCR'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-08-22T00:08:18.234879Z",
     "start_time": "2018-08-22T00:08:18.115389Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjQAAAFnCAYAAACxedPHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzt3Xl4jXf+//HXyapK1J4qypiqJZbW\nNghtYkmsEUuVJlS1WkNpGJVR1F6dUtUwvnRMaWzVCkZrX8ooUoJq0MoYWvuaRBJkvX9/9OeMNItE\ncfKR5+O65rpyzue+P5/3eZ/TOS/3fZ9zbJZlWQIAADCYk6MLAAAA+L0INAAAwHgEGgAAYDwCDQAA\nMB6BBgAAGI9AAwAAjEegAe6zp59+Wm3atJG/v7/9f/3797/r+VJSUrRq1ap7WGHB5Ovrq3379uW6\nze29uHDhgjp27PggSsuy3m+fk6efflrnz5/P95y1atXS6dOn71mNd+Pll19WRETEXe//3//+V3v3\n7r2HFf1PXp/j4OBgrV69Osv9p0+fVq1ate5HaSgAXBxdAFAYhIeHy9PT857MdeTIEa1atUpdunS5\nJ/OZ7PZelC9fXl999dUDW/v29XhO/mfz5s1KS0tTo0aN7vncD/o5hlk4QgM40IULF/TGG2/Iz89P\nfn5+2r59u33siy++ULt27dS2bVu99NJLOnPmjC5fvqzBgwfr4MGD6t27d5Z/cd5+OyIiQoMHD1bf\nvn31t7/9TZK0fPly+fv7y9fXV8OGDdPNmzclSd99950CAwPVvn17tWvXTuvWrcu23nnz5qlVq1by\n8/PTe++9p1vfy/nZZ5+pffv28vf318CBA3X16lVJUmhoqN577z116tRJ69atU1hYmEaPHq3u3btr\nwYIFkqTZs2fLz89PPj4+mjRpktLT07Osm99eZGRkaMaMGfYjYqGhobp+/bqkX//1/umnn6pXr15q\n0aKFhg0bpt9+v+gXX3yhv/zlL/bb7dq104wZM+xzN27cWNHR0apVq1aWOm7Zvn27unbtKm9vb/3z\nn//Mtp/bt29XmzZt1K5dO/3jH//INJbTcxUcHKywsDC98MIL8vHx0dixY+09i4qKUrdu3dSmTRu9\n8MILOnXqlP21MGTIEI0aNUp+fn5q3769YmJiJEmnTp1Sjx491Lp1aw0fPjxT//M739atWzV37lx9\n9tlnmjp1aqbH8/7772vSpEn227Gxsapfv74SEhJ04MABde3aVf7+/mrfvr127dol6dfXs7e3t6ZM\nmaKgoKAsz/H48ePl5+cnX19fjRgxQqmpqfb5jx07pu7du+v555/X6NGjs31d5eW1B4NYAO6r6tWr\nW+fOnct2bMCAAdaMGTMsy7KskydPWo0bN7auXr1qXb582fLy8rLvFxoaao0aNcqyLMtasWKF1bdv\nX8uyLOvUqVNWzZo17fPdfnvFihVW/fr1rRMnTliWZVnff/+91axZM+v8+fOWZVnWmDFjrKlTp1qW\nZVldu3a1IiMjLcuyrBMnTljDhg3LUuvevXutNm3aWAkJCVZycrLVrVs3a+3atdaBAwesli1bWpcv\nX7Ysy7ImTJhgr3XkyJFWp06drJs3b1qWZVkff/yx5e3tbV25csWyLMtat26d1aFDB+vatWtWamqq\nNWDAACs8PNyyLMvy8fGx9u7de1e9+Oqrr6wuXbpYSUlJVnp6ujVw4EBr9uzZlmVZVlBQkBUUFGTd\nuHHDSkpKspo2bWrt27cv02P95ZdfrFatWlmWZVlXrlyxXnjhBSsoKMiyLMs6evSoFRAQkKXXt+qw\nrF+f8+nTp1uWZVmHDh2y6tSpY6WkpGRaIy0tzfL29rZ27txpWZZlzZ8/36pevbp16tSpXJ+roKAg\nq3v37tb169et69evW23btrU2bdpkJSYmWs2bN7fPt2bNGiswMNBeX7169awffvjBsizLGjdunPXO\nO+9YlmVZQ4YMsT788EP7a6RWrVrWihUr7nq+kSNH2nt9u4MHD1o+Pj72219++aX1+uuvW5ZlWR07\ndrS++uory7Isa+XKlVbr1q3tz2nt2rWtiIiILM/x+vXrrY4dO1opKSnWzZs3rXbt2lmrVq2y96hb\nt25ZenT7/rm99mAmjtAAD0BwcHCma2hGjx6t69eva/v27fZ/1T/55JNq0KCBtm/frtKlSysqKsp+\nmqphw4b2fx3nR5UqVVSlShVJ0vr169WqVSuVL19ektSrVy9t3LhRklS6dGmtWrVKx48fV5UqVTR9\n+vQsc+3YsUPPPfecihUrJjc3N4WHh6tt27b65ptv5Ofnp9KlS0uSevTooW+//da+X9OmTeXu7m6/\nXa9ePZUqVUqStG7dOnXq1EnFixeXi4uLevToYa/plrvpxTfffKMuXbqoaNGicnJyUteuXTPV5O/v\nryJFiqho0aKqUqWKzp07l2n/SpUqKT09XVeuXNG+ffvUtGlTxcfHKzU1VVFRUWratGmu60tS586d\nJf16XUxycrJiY2MzjZ88eVLJyclq3ry5JCkwMNA+lttzJUkdOnTQI488okceeUQtWrTQgQMHtG/f\nPj366KP2+Tp27KhffvlFZ8+elSRVq1ZNXl5e9ppuPeZ9+/apXbt2kqS6devqD3/4g/3+u5kvJ/Xq\n1ZNlWfrxxx8lSZs2bbKvu2rVKvvfDRo0yPT8pqamqk2bNlnm8/Pz04oVK+Tq6ip3d3fVqVMn035+\nfn72Hj333HM6ePBgpv3z8tqDWbiGBngAsruG5sKFC7IsS3369LHfd/36df3pT39Senq6wsLCtGXL\nFqWnpyspKUlVq1bN97olSpSw/52QkKBNmzbpu+++kyRZlmU/RD9lyhTNmTNH/fr1U5EiRTRs2DD5\n+/tnmis2NlblypWz337kkUckSVevXs10v4eHh65cuZJtDdnVFB4erpUrV0qS0tPT7WHnlrvpxdWr\nVzOtU6JEiUw1FStWzP63s7NztqcamjRpogMHDmjv3r3y9vbW2bNndfToUe3bty9P18rcWsPZ2VnS\nr6dIbhcfH5+pjrw+V7/dtkSJErp48aKuXbumCxcuZHre3Nzc7Kf/ihcvnu1j/m0dHh4eknTX8+Wm\nTZs22rJliypXrqz9+/dr2rRpkqQ1a9bos88+U1JSkjIyMjKdAnR2ds5U3y1Xr17VxIkTdeTIEdls\nNl2+fFl9+/a1j9/+OipevLguXbqUaf+8vPZgFgIN4CClS5eWs7OzVqxYoUcffTTT2Jo1a7RlyxYt\nWrRIpUqV0vLly7VmzZosczg7O9vfAGw2m+Lj43Ncr1y5cgoMDNTIkSOzjJUpU0ZjxozRmDFjtHPn\nTr355ptq0aJFprpKliyZ6SjDrb/LlCmjuLg4+/1xcXEqU6ZMnnpQrlw5+fr6KigoKMdt1q5dm6de\n/Pbx3G1NtzRp0kQHDx7U/v379eabb+rs2bPav3+/Dh06pEmTJmU54pJfJUqUUGJiov32raAg5f5c\nScq0dnx8vEqUKKFy5crpD3/4Q7afUDp27FiOdXh4eGRbx93Olxs/Pz9NmTJFTz31lBo1aqRixYrp\nwoULGj16tL744gvVrFlTJ0+elJ+f3x3nmjFjhlxcXLRmzRq5ublp+PDhmcZv/2/hVo9ul5fXHszC\n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\nu9DQUG3btu2ezwsAQGHhcr8X2LVrl0aMGKGGDRve76Wy9c477zhkXQAA8ODcMdBEREQoKipKV69e\n1YkTJ9S/f39VrlxZM2bMkIuLi8qXL6/33ntPX331VZbtKlSooB07dig6OloeHh72OXft2qWZM2fK\n1dVVHh4e+uijj/TWW2+pX79+atSokW7evKn27dtr/fr1+utf/6oLFy7o+vXrevPNN+Xj46Pg4GA1\na9ZMe/bsUWxsrP7v//5PFSpU0N/+9jft379f6enpeumll9SlSxcFBwdrzJgx8vDw0NChQ1W8eHFV\nrVr1jo/53//+txITE3X+/Hm9/PLL6tatmyRp3bp1mjx5suLi4jRnzhxVqFBBM2bM0L59+5Senq6g\noCB17NhRoaGhKleunA4fPqyzZ89q2rRpql27thYuXKi1a9dKklq1aqUBAwbY1z179qxGjBghJycn\npaen64MPPtATTzxxV08sAACFSZ6O0Bw7dkzLli3TyZMnNWzYMCUnJ+vTTz/V448/rgkTJmjNmjWy\n2WxZtlu9erVatGghPz8/NW7c2D5ffHy8pk2bpkqVKuntt9/Wzp071bZtW23dulWNGjXSt99+K29v\nbyUkJMjb21uBgYE6deqUhg4dKh8fH0lSsWLFtHDhQk2bNk0bN25U7dq1FRMTo2XLlun69evq3Lmz\nWrdubV/zs88+U/v27dW3b1/NmzdPP/74Y66P+T//+Y9Wrlypa9euKSAgQIGBgZKk0qVLa+HChZo+\nfbo2btwoLy8vnTlzRosXL1ZKSooCAwPt66akpGj+/PlaunSpVq1aJQ8PD61cuVJffvmlJKlHjx7y\n9/e3r7lhwwY1a9ZMgwYN0uHDh3Xp0iUCDQAAeZCna2jq168vZ2dneXp6KiEhQTabTY8//rgkqWHD\nhjp69Gi22+WkVKlSGj16tIKCghQZGam4uDj5+vpq586dkqQtW7bIz89PHh4e+uGHH/Tiiy9q5MiR\niouLs89x6xSWp6enEhMTFR0drUaNGkmSihYtqipVqujnn3+2b3/8+HE988wzkpSna3kaNWokFxcX\nlSpVSiVKlFBsbKwkqUGDBpKk8uXLKzExUfv379f333+v4OBg9e/fXxkZGbp06VK2NR49elT16tWT\ni4uLXFxcVLdu3UzBqnnz5lq9erWmTp2qlJQU1a9f/451AgCAPB6hcXH532bx8fEqW7as/XZGRoZs\nNluW7XIzatQozZs3T9WqVdOECRMkSR4eHipXrpyOHz+ugwcP2o/8xMfHa8mSJYqLi1P37t3tczg7\nO9v/tizLXsPt9zk5OWV7OyMj44413r7N7fP/dl03Nzd1795dr7/+epY5sqvRsqwca6xevbpWr16t\nb7/9Vh9++KG6deumLl263LFWAAAKu3x/yqlEiRKy2Ww6e/asJOm7776Tl5dXvuZITEzU448/rmvX\nrikyMlKpqamSpNatW2vu3LmqX7++XFxcFBsbq4oVK8rJyUmbNm1SSkpKjnN6eXkpMjJSkpSUlKRf\nfvlFTz75pH28atWqio6OliT7drk5ePCg0tPTdfXqVSUlJemxxx7Ldru6detq27ZtysjIUHJysiZO\nnJjjnDVr1tTBgweVlpamtLQ0ff/996pZs6Z9/Ouvv1ZMTIxat26toUOH2usFAAC5u6tPOU2cOFHD\nhw+Xi4uLKlasqA4dOuhf//pXnvfv3bu3evXqpSpVqujVV19VWFiYfHx81KZNG02ePFmzZ8+WJLVt\n21YDBw7UwYMH1a1bN3l6etrHfqthw4by8vLSSy+9pLS0NA0fPlxFixa1j/fp00dvvfWWNm3apOrV\nq9+xxieeeEJDhw7Vzz//rLfeeivTkZTbPfvss2rSpIl69uwpy7LUu3fvHOesWLGievbsqaCgIFmW\npR49emS6RqZKlSp69913VbRoUTk7O2v06NF3rBMAAEg26/ZzIJD066ecYmJiNHLkSEeXkqPk5GRF\nR0crYHWMziWlOrqch0769Px/T9HDKioqyn7tGPKGnuUfPcu/wtizW+99Xl5ecnd3zzR237+HpiAb\nN26cjh8/nuX+du3aOaAaAABwtwp9oAEAAObjt5wAAIDxCDQAAMB4BBoAAGA8Ag0AADAegQYAABiP\nQAMAAIxHoAEAAMYj0AAAAOMRaAAAgPEINAAAwHgEGgAAYDwCDQAAMB6BBgAAGI9AAwAAjEegAQAA\nxnNxdAH4fY6/Eyh3d3dHl2GMqKgoNWjQwNFlAADuMY7QAAAA4xFoAACA8Qg0AADAeAQaAABgPAIN\nAAAwHoEGAAAYj0ADAACMR6ABAADGI9AAAADjEWgAAIDxCDQAAMB4/JaT4apNXqlzSamOLsMsS444\nugLz0LP8o2f59/97lj492MGFwEQcoQEAAMYj0AAAAOMRaAAAgPEINAAAwHgEGgAAYDwCDQAAMB6B\n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\n69lnn9WaNWtynDslJUXz589Xnz59tGrVKvv9zZs3V82aNfXee+8pKChIW7ZskSQlJCQoPj4+2zAj\nSV9//bXc3Ny0aNEihYWFacKECWrevLlatGihYcOGZRtmcnuM//znP7V06VItW7ZMHh4e9u1Lly6t\nhQsXqmXLltq4cWPemwkAQCHnsCM0ZcqU0d///nfNnz9fKSkpKlq0qH3syJEjeueddyRJb7/9tiTp\nxx9/1LRp03Tz5k1dvHhRnTp1ynHuW6eAPD09dejQoWy3eeyxx/Tkk0/q8OHDOnHihPz9/XOcLzo6\nWk2aNJEklS9fXs7OzoqLi7vrx+jn56d+/fqpY8eO6ty5s337Bg0a2NfIy/wAAOBXDjtCs3DhQpUv\nX15Lly7VuHHjMo05OzvLsqxM902ePFl9+vTRokWL1LNnz1zndnZ2tv/923lu16VLF61fv17btm1T\nhw4dcp3z9nkyMjLk5HTn1uX0GMePH69x48bp0qVLCgoKUlpaWr7qBgAAmTks0MTGxqpy5cqSpM2b\nNys1NdU+5uXlpT179kiSZs6cqV27dikuLk6VK1dWSkqKtm/fnmn7/LDZbEpJSZEktWzZUnv37tW1\na9dUsWLFHPepU6eOIiMjJUnnzp2Tk5NTplNF+XmMiYmJmjVrlqpVq6bBgwfrscceU2Ji4l09FgAA\n8CuHBZqAgAB9+umneuWVV1S3bl1dunTJflRiyJAhWr58uYKCgnT69Gk1adJEQUFBGjRokIYMGaLg\n4GCtWrXqroJA48aNFRISopiYGLm5ualatWry8fHJdZ8OHTooPT1dwcHBCgkJsX9i6m4e44YNGxQb\nG6vu3burT58+qlevnh577LF8Pw4AAPA/NqsQn9tITk5W7969tWDBAhUvXtzR5eRLcnKyoqOjFbA6\nRueS7u5oFVAYpE8PfuBrRkVF2a+JQ97Qs/wrjD279d7n5eUld3f3TGMOuyjY0Q4ePKixY8eqf//+\n9jAzbtw4HT9+PMu2n3zySY7fcfN79gMAAPdGoQ009evX17/+9a9M9/324uS8utv9AADAvfHQfFMw\nAAAovAg0AADAeAQaAABgPAINAAAwHoEGAAAYj0ADAACMR6ABAADGI9AAAADjEWgAAIDxCDQAAMB4\nBBoAAGA8Ag0AADAegQYAABiPQAMAAIxHoAEAAMYj0AAAAOO5OLoA/D7H3wmUu7u7o8swRlRUlBo0\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7ff6a34cacf8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fea_corr = FeatureCorrelation(method='mutual_info-classification',\n",
    "                              feature_index=[1, 3, 5, 7, 9])\n",
    "fea_corr.fit(X_pd, y, random_state=0)\n",
    "fea_corr.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-08-22T00:08:18.238550Z",
     "start_time": "2018-08-22T00:08:18.236395Z"
    },
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "feature_to_plot = ['alcohol', 'ash', 'hue', 'proline', 'total_phenols']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-08-22T00:08:18.401591Z",
     "start_time": "2018-08-22T00:08:18.239976Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAg8AAAFnCAYAAAAhaqoIAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzt3Xl8VFWe//93ZSEBWWQN4hfERhBI\nWDQIjcYgISEJBkMiSItJEGkRR6AHUcEAArKIMyAi2o7atmBAFCXgYIMKoqgtxCSAGnGhHVR2AyRk\ng6zn94e/1BBCQh0GqCyv5+PRjwdV595zP/Wpsuudc29VOYwxRgAAAC7ycHcBAACgdiE8AAAAK4QH\nAABghfAAAACsEB4AAIAVwgMAALBCeECdcf311yssLEwRERHO/40dO/aC5ysqKtL69esvYoU1U0hI\niNLS0qrd5sxeHD16VFFRUZejtErHO/s5uf7663XkyBHrObt3764DBw5ctBovxL333qvk5OQL3v9/\n/ud/lJqaehEr+l+uPsfx8fF69913K91/4MABde/e/VKUhhrCy90FABdTUlKS2rZte1Hm2rNnj9av\nX69hw4ZdlPlqszN74efnp/fee++yHfvM4/Gc/K8tW7aopKREN91000Wf+3I/x6h9WHlAvXD06FGN\nHz9e4eHhCg8P17Zt25xjb7/9tiIjIzV48GDdc889OnjwoI4dO6YJEyZo9+7dGjVqVKW/pM68nZyc\nrAkTJmj06NH6j//4D0nSmjVrFBERoZCQED388MM6ffq0JOnLL79UTEyMhgwZosjISG3atOmc9b78\n8ssaNGiQwsPD9dRTT6n8u9xef/11DRkyRBEREXrwwQd14sQJSdK0adP01FNPaejQodq0aZOWLVum\nGTNmaPjw4Vq+fLkk6YUXXlB4eLgGDhyoefPmqbS0tNJxbXtRVlamJUuWOFd6pk2bpoKCAkm//1X6\n2muv6e6779att96qhx9+WGd/J93bb7+tRx55xHk7MjJSS5Yscc7dt29fZWRkqHv37pXqKLdt2zbF\nxsYqKChIf//738/Zz23btiksLEyRkZH629/+VmGsqucqPj5ey5Yt01133aWBAwfqiSeecPYsPT1d\nd955p8LCwnTXXXdp//79ztfCpEmTlJiYqPDwcA0ZMkR79+6VJO3fv18jRoxQaGiopkyZUqH/tvNt\n3bpVL730kl5//XUtXLiwwuN5+umnNW/ePOftrKws9e7dW7m5udq1a5diY2MVERGhIUOG6IsvvpD0\n++s5KChICxYsUFxcXKXneM6cOQoPD1dISIgeffRRFRcXO+f/8ccfNXz4cN12222aMWPGOV9Xrrz2\nUMsYoI7o0qWLOXz48DnHxo0bZ5YsWWKMMebnn382ffv2NSdOnDDHjh0zAQEBzv2mTZtmEhMTjTHG\nrF271owePdoYY8z+/ftNt27dnPOdeXvt2rWmd+/eZt++fcYYY7766itz8803myNHjhhjjJk5c6ZZ\nuHChMcaY2NhYk5KSYowxZt++febhhx+uVGtqaqoJCwszubm5prCw0Nx5551m48aNZteuXSY4ONgc\nO3bMGGPMk08+6ax16tSpZujQoeb06dPGGGOee+45ExQUZI4fP26MMWbTpk3m9ttvNzk5Oaa4uNiM\nGzfOJCUlGWOMGThwoElNTb2gXrz33ntm2LBhJj8/35SWlpoHH3zQvPDCC8YYY+Li4kxcXJw5deqU\nyc/PN/379zdpaWkVHuuvv/5qBg0aZIwx5vjx4+auu+4ycXFxxhhjvvvuOxMdHV2p1+V1GPP7c754\n8WJjjDFff/216dGjhykqKqpwjJKSEhMUFGQ+//xzY4wxr776qunSpYvZv39/tc9VXFycGT58uCko\nKDAFBQVm8ODBZvPmzSYvL8/ccsstzvk2bNhgYmJinPX16tXLfPPNN8YYY2bPnm2mT59ujDFm0qRJ\n5plnnnG+Rrp3727Wrl17wfNNnTrV2esz7d692wwcONB5+5133jEPPPCAMcaYqKgo89577xljjFm3\nbp0JDQ11Pqf+/v4mOTm50nP8/vvvm6ioKFNUVGROnz5tIiMjzfr16509uvPOOyv16Mz9q3vtofZi\n5QF1Snx8fIVrHmbMmKGCggJt27bN+dfqNddco8DAQG3btk0tW7ZUenq681RHnz59nH/12ejYsaM6\nduwoSXr//fc1aNAg+fn5SZLuvvtuffjhh5Kkli1bav369frpp5/UsWNHLV68uNJcn376qQYMGKDG\njRurQYMGSkpK0uDBg/XJJ58oPDxcLVu2lCSNGDFC//znP5379e/fXz4+Ps7bvXr1UosWLSRJmzZt\n0tChQ9WkSRN5eXlpxIgRzprKXUgvPvnkEw0bNkyNGjWSh4eHYmNjK9QUEREhX19fNWrUSB07dtTh\nw4cr7N++fXuVlpbq+PHjSktLU//+/XXy5EkVFxcrPT1d/fv3r/b4knTHHXdI+v06hsLCQmVlZVUY\n//nnn1VYWKhbbrlFkhQTE+Mcq+65kqTbb79dDRs2VMOGDXXrrbdq165dSktL0xVXXOGcLyoqSr/+\n+qsOHTokSerUqZMCAgKcNZU/5rS0NEVGRkqSevbsqT/84Q/O+y9kvqr06tVLxhh9//33kqTNmzc7\nj7t+/XrnvwMDAys8v8XFxQoLC6s0X3h4uNauXStvb2/5+PioR48eFfYLDw939mjAgAHavXt3hf1d\nee2h9uGaB9Qp57rm4ejRozLGKCEhwXlfQUGB/vjHP6q0tFTLli3TRx99pNLSUuXn5+vaa6+1Pm6z\nZs2c/87NzdXmzZv15ZdfSpKMMc5l3gULFujFF1/UmDFj5Ovrq4cfflgREREV5srKylKbNm2ctxs2\nbChJOnHiRIX7mzZtquPHj5+zhnPVlJSUpHXr1kmSSktLncGi3IX04sSJExWO06xZswo1NW7c2Plv\nT0/Pcy5X9+vXT7t27VJqaqqCgoJ06NAhfffdd0pLS3Pp2obyY3h6ekr6fZn9TCdPnqxQh6vP1dnb\nNmvWTL/99ptycnJ09OjRCs9bgwYNnKeQmjRpcs7HfHYdTZs2laQLnq86YWFh+uijj9ShQwft3LlT\nixYtkiRt2LBBr7/+uvLz81VWVlbhNJKnp2eF+sqdOHFCc+fO1Z49e+RwOHTs2DGNHj3aOX7m66hJ\nkybKzMyssL8rrz3UPoQH1HktW7aUp6en1q5dqyuuuKLC2IYNG/TRRx9p5cqVatGihdasWaMNGzZU\nmsPT09P5f7YOh0MnT56s8nht2rRRTEyMpk6dWmmsVatWmjlzpmbOnKnPP/9cEydO1K233lqhrubN\nm1f467n8361atVJ2drbz/uzsbLVq1cqlHrRp00YhISGKi4urcpuNGze61IuzH8+F1lSuX79+2r17\nt3bu3KmJEyfq0KFD2rlzp77++mvNmzev0kqCrWbNmikvL895u/xNWar+uZJU4dgnT55Us2bN1KZN\nG/3hD3845yclfvzxxyrraNq06TnruND5qhMeHq4FCxaoc+fOuummm9S4cWMdPXpUM2bM0Ntvv61u\n3brp559/Vnh4+HnnWrJkiby8vLRhwwY1aNBAU6ZMqTB+5n8L5T06kyuvPdQ+nLZAnefl5aXg4GC9\n+eabkqRTp07p8ccf1+HDh3X8+HFdffXVzjfsjRs3Kj8/37lfXl6ejDFq3ry5PD099cMPP0jSOT+e\nVi4kJEQffvih881hy5Ytevnll1VcXKz4+Hj99ttvkiR/f395eXk5/2I+c/+tW7fq5MmTKikp0UMP\nPaTPP/9ct912mzZv3ux8Q3vzzTc1YMAAl3oQEhKid999V6dOnXLuW/6XYDlXe3GmAQMG6L//+791\n6tQplZSU6O2333a5pnL9+vXTF198odLSUjVt2lQ33HCDNm3aJD8/v0phr6o6qtOhQwd5enoqJSVF\n0u8XITocDmdfzvVcldu8ebOKiopUUFCgTz/9VH369FGvXr2UmZmpr776StLvF0I++uij562pd+/e\n2rx5syRp586d+vXXXyXpgufz8vJSbm7uOcduvPFGHT9+XMnJyc7TFCdOnFCjRo107bXXqqSkRG+9\n9ZYkVQg053L8+HF17txZDRo00Pfff69du3Y5XxeS9OGHH6qwsFAFBQX67LPP1KdPnwr7u/LaQ+1D\neEC9MGfOHKWmpioiIkIxMTFq3769rrrqKkVFRSk7O1sDBw7UlClTNHnyZB05ckTz5s1TYGCgfvvt\nN916663y9vbWxIkT9ec//1mxsbHq1q1blcfy9/fX+PHjFR8fr8jISC1fvlyDBg2St7e3hg8frnvv\nvVdDhgxRfHy8ZsyYIV9f3wr79+7dW2PHjtWwYcN0++23q3v37oqKilLPnj01btw43XPPPYqIiFBu\nbq4mT57s0uMPCwvTwIEDFRMTo4iICG3dulVBQUEVtnG1F2eeFoiMjFRwcLBiY2MVFRWlq666qsLp\nIVe0a9dOubm56tmzpySpS5cu2rt3r/74xz9W2vbMOly9Yt/b21tz585VYmKiIiMj5XA41KhRI0lV\nP1flbrjhBiUkJCgyMlI333yzgoOD5evrq+eee05z585VZGSkHnroIUVERDgDSVUeffRRffzxxwoN\nDdWqVat08803S9IFzzdw4EC9+eabmjRpUqUxh8Oh0NBQbd++XQMHDpQkde3aVcHBwQoJCdHIkSMV\nEhKi3r17V/jkyrncd999evPNNzV48GCtWrVKU6dO1VtvveX8pNDNN9+shIQEDRkyRP3799ett95a\nYX9XXnuofRzGJsIDQD0RHx+v4cOHKzo62t2lADUOKw8AAMAK4QEAAFjhtAUAALDCygMAALDC9zy4\n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\n+9z4aAEAqD1qbHiQpH/9619at26dcnJyFB0dLU9PTwUHBys4OFiPP/64hg8friFDhuj999/X888/\nr4kTJ55znqKiIr366qtavXq11q9fr6ZNm+r999/X6tWrJUl33323IiIi1K5du8v58AAAqJVq9DUP\nN910k7y8vNSiRQs1a9ZMWVlZ6tmzpyQpIyNDffv2lST16dNHe/bsqXKePn36SJLatm2rvLw8ffPN\nN/rll1+UkJCghIQE5efn6+DBg5f+AQEAUAfU6JWHsrIy57+NMXI4HPL29pYkORwOGWOc23l4VJ2D\nPD09K8zj7e2t2267TU8++eQlqhwAgLqrRq887N69W6WlpTpx4oTy8/N15ZVXOsd69OihlJQUSVJq\naqoCAgJcntff318pKSk6deqUjDGaN28en8wAAMBFNXrl4eqrr9Zf/vIX/fLLL/r3f/93Pffcc86x\nSZMmafr06VqzZo28vb21YMECFRcXuzRvu3btlJCQoHvuuUeenp4KDQ2Vr6/vpXoYAADUKQ5TvvZf\nwyQnJ2vv3r2aOnWqu0tRYWGhMjIyFP3uXh3Ody2gAABwuZQujr+o85W/7wUEBMjHx6fSeI0+bQEA\nAGqeGnvaovybIgEAQM3CygMAALBCeAAAAFYIDwAAwArhAQAAWCE8AAAAK4QHAABghfAAAACsEB4A\nAIAVwgMAALBCeAAAAFYIDwAAwArhAQAAWCE8AAAAK4QHAABghfAAAACseLm7gNrkp+kx8vHxcXcZ\nNV56eroCAwPdXUatQK9cR69cR69cR68uDCsPAADACuEBAABYITwAAAArhAcAAGCF8AAAAKwQHgAA\ngBXCAwAAsEJ4AAAAVggPAADACuEBAABYITwAAAAr/LaFhU7z1+lwfrG7y6gd3tjj7gpqD3rlOnrl\nuhrSq9LF8e4uAZcAKw8AAMAK4QEAAFghPAAAACuEBwAAYIXwAAAArBAeAACAFcIDAACwQngAAABW\nCA8AAMAK4QEAAFghPAAAACuEBwAAYIXwAAAArBAeAACAFcIDAACwQngAAABWCA8AAMAK4QEAAFip\nU+EhJSVFkyZNcncZAADUaXUqPAAAgEvPy90FXGz5+fl65JFH9MMPPyg8PFwpKSmaOXOmunTpopUr\nVyorK0sTJ07UkiVLlJaWptLSUsXFxSkqKsrdpQMAUCvUufDw008/adOmTSorK9OgQYPUuXPnStuk\n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\n1atXKy0tTYsWLVKDBg10+vRpzZo1S/7+/uet68CBA3rwwQcVFBSkr7/+Wvn5+XrppZe0efNmffvt\nt1q8eLFKSkrUqlUrLVy4UF5eXnI4HHriiSd03XXXKT4+Xl27dtV3332nFStWqE+fPnrwwQe1detW\nFRcXa/z48VqzZo327dun2bNnKygo6Jy1Nm3aVM8++6yMMbryyiuVl5enkpISTZ48WZ988oleeOEF\n+fr6qmHDhpo7d678/PwUEhKihIQEffrppzp48KBmz56t/v37X9LnEXA3Vh6AeiY6Olpr166VJH3w\nwQcKDg4+77fpjRo1Sq1bt9aiRYt03XXXVblddna2Zs+erddff10JCQl66aWXXK7rp59+UmxsrFat\nWqVu3bpp06ZNiouLU7du3TRt2jQNGjRIjz32mPPbEseMGaM5c+Y492/UqJFWrlwpT09PFRQUKCAg\nQG+++aYaNWqkrVu36pVXXtG//du/OU/bnKvW9u3bKyYmRnfccUeFH5U6deqUZsyYoWXLlikpKUnB\nwcF69tlnneM+Pj76+9//rvHjx+v11193+TEDtRXhAahnhgwZoo0bN6q4uFjr1q3THXfccdHmbtWq\nlf7zP/9TcXFxevnll5WVleXyvs2bN3f+pkC7du0qXV+Rk5Oj48ePq2fPnpKkvn37KiMjwzl+4403\nVtg+MDBQ0u8/ilQ+1rZtW+Xk5FjX+vPPP6tly5Zq27at89jffPONc7xv377Out1xage43AgPQD3T\nvHlz+fv7a+3atcrMzFSPHj2cY2f/TkT5jwVV58xtHnvsMf35z3/WypUrNXnyZKu6PD09K9w++5vz\nz67t7HFvb+8q5zt77v9rrWf/pLOXl1eFMaCuIzwA9VB0dLSWLFmi22+/vcL9jRs31smTJ3X69GmV\nlpY6fwJb+v3N+/Tp087tDh8+LEnOiwsl6dixY+rQoYPKysr0/vvvq6io6KLV3KRJE7Vu3VpfffWV\nJGn79u3q3bv3Bc9XVa0Oh0OFhYUVtr322mt1/PhxHTp0yHns8utEgPqICyaBeigkJERPPPFEpVMW\nzZo1U0xMjGJjY9WhQwd1797dORYUFKQJEybo6aef1n333afp06erY8eOFU4X3H///Ro3bpzatWun\nsWPH6rHHHtPy5csvWt1PP/20Fi5cKE9PT3l4eGj27NkXPFdVtfbp00eTJ0+Wr6+vc8XC19dX8+fP\n1+TJk9WgQQM1atRI8+fPv0iPCqh9+FVNAABghdMWAADACuEBAABYITwAAAArhAcAAGCF8AAAAKwQ\nHgAAgBXCAwAAsEJ4AAAAVv4/gQdbY37fbA4AAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7ff6a3500400>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fea_corr = FeatureCorrelation(method='mutual_info-classification',\n",
    "                              feature_names=feature_to_plot)\n",
    "fea_corr.fit(X_pd, y, random_state=0)\n",
    "fea_corr.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.3"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
